<?php

use Illuminate\Database\Seeder;
use App\Models\TrainingScenario;

class TrainingScenarioSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $scenarios = [
            [
                'name' => '初次见面破冰',
                'description' => '在聚会或活动中第一次见面，需要主动打招呼并建立联系。',
                'objective' => '在5分钟内成功破冰，获得对方联系方式或约定下次见面。',
                'success_criteria' => json_encode([
                    'min_emotion_score' => 70,
                    'max_duration_minutes' => 5,
                    'required_actions' => ['greeting', 'introduction', 'contact_exchange']
                ]),
                'scenario_prompt' => '你们在一个朋友的生日聚会上第一次见面。现场有很多人，音乐声有点大，气氛很热闹。你注意到对方独自站在一边，似乎在观察周围的人。',
                'tags' => '破冰,初次见面,聚会,社交',
                'difficulty_level' => 2,
                'is_active' => true,
            ],
            [
                'name' => '挽回冷场局面',
                'description' => '对话陷入冷场，需要快速找到新话题重新激活对话。',
                'objective' => '在10秒内找到合适话题，重新激活对话氛围。',
                'success_criteria' => json_encode([
                    'max_response_time_seconds' => 10,
                    'min_emotion_score' => 60,
                    'topic_change_required' => true
                ]),
                'scenario_prompt' => '你们已经聊了一会儿，但刚才的话题结束后，现场突然安静下来，气氛有些尴尬。对方看起来有点不自在，在等你说些什么。',
                'tags' => '冷场,话题转换,尴尬,救场',
                'difficulty_level' => 4,
                'is_active' => true,
            ],
            [
                'name' => '安抚生气朋友',
                'description' => '朋友因为某事生气了，需要用合适的方式安抚和理解。',
                'objective' => '成功安抚朋友情绪，让对方感受到理解和支持。',
                'success_criteria' => json_encode([
                    'min_emotion_score' => 75,
                    'empathy_required' => true,
                    'solution_offered' => false
                ]),
                'scenario_prompt' => '你的朋友刚刚和老板发生了争执，现在情绪很激动，正在向你抱怨工作中的不公平待遇。他们看起来既愤怒又委屈。',
                'tags' => '安抚,情绪管理,朋友,支持',
                'difficulty_level' => 3,
                'is_active' => true,
            ],
            [
                'name' => '职场小组讨论',
                'description' => '在工作会议中需要表达观点并与同事协作。',
                'objective' => '清晰表达自己的观点，同时尊重他人意见，推动讨论进展。',
                'success_criteria' => json_encode([
                    'opinion_expressed' => true,
                    'collaboration_shown' => true,
                    'min_emotion_score' => 65
                ]),
                'scenario_prompt' => '你正在参加一个项目讨论会，需要就新产品的功能设计发表意见。会议室里有几个同事，大家观点不一，讨论比较激烈。',
                'tags' => '职场,会议,协作,表达',
                'difficulty_level' => 3,
                'is_active' => true,
            ],
            [
                'name' => '约会邀请',
                'description' => '向心仪的人发出约会邀请，需要自然而不唐突。',
                'objective' => '成功发出约会邀请并获得积极回应。',
                'success_criteria' => json_encode([
                    'invitation_made' => true,
                    'min_emotion_score' => 70,
                    'natural_transition' => true
                ]),
                'scenario_prompt' => '你们已经聊得很愉快，对方对你似乎也有好感。现在是一个合适的时机，你想邀请对方一起去看电影或者吃饭。',
                'tags' => '约会,邀请,浪漫,勇气',
                'difficulty_level' => 4,
                'is_active' => true,
            ],
            [
                'name' => '道歉和解释',
                'description' => '因为误会或错误需要向对方道歉并解释情况。',
                'objective' => '真诚道歉，清楚解释，获得对方理解和原谅。',
                'success_criteria' => json_encode([
                    'apology_made' => true,
                    'explanation_given' => true,
                    'min_emotion_score' => 60
                ]),
                'scenario_prompt' => '你因为工作忙碌忘记了和朋友的约定，对方有些不高兴。你需要向他们道歉并解释情况，希望能够获得理解。',
                'tags' => '道歉,解释,误会,和解',
                'difficulty_level' => 3,
                'is_active' => true,
            ],
        ];

        foreach ($scenarios as $scenario) {
            TrainingScenario::create($scenario);
        }
    }
}